<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader Host: elftosbTool Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader Host
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Host Tools for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classelftosb_tool.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="classelftosb_tool-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">elftosbTool Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Class that encapsulates the elftosb tool.  
 <a href="classelftosb_tool.html#details">More...</a></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for elftosbTool:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classelftosb_tool__coll__graph.svg" width="2714" height="823"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:structelftosb_tool_1_1_family_name_table_entry"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#structelftosb_tool_1_1_family_name_table_entry">FamilyNameTableEntry</a></td></tr>
<tr class="memdesc:structelftosb_tool_1_1_family_name_table_entry"><td class="mdescLeft">&#160;</td><td class="mdescRight">A structure describing an entry in the table of chip family names.  <a href="classelftosb_tool.html#structelftosb_tool_1_1_family_name_table_entry">More...</a><br /></td></tr>
<tr class="separator:structelftosb_tool_1_1_family_name_table_entry"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abbd57528cb70d4ed7225993c04412b7e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#abbd57528cb70d4ed7225993c04412b7e">elftosbTool</a> (int argc, char *argv[])</td></tr>
<tr class="separator:abbd57528cb70d4ed7225993c04412b7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c516c8d1cb63dcbc5237ed8d74bac1a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a1c516c8d1cb63dcbc5237ed8d74bac1a">~elftosbTool</a> ()</td></tr>
<tr class="separator:a1c516c8d1cb63dcbc5237ed8d74bac1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac556d139f83167784017bbf8d7eee730"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#ac556d139f83167784017bbf8d7eee730">lookupFamilyName</a> (const char *name, <a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432">chip_family_t</a> *family)</td></tr>
<tr class="memdesc:ac556d139f83167784017bbf8d7eee730"><td class="mdescLeft">&#160;</td><td class="mdescRight">Searches the family name table.  <a href="#ac556d139f83167784017bbf8d7eee730">More...</a><br /></td></tr>
<tr class="separator:ac556d139f83167784017bbf8d7eee730"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd1ad23a44d817b0d5e20bcf3f3e0a94"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#acd1ad23a44d817b0d5e20bcf3f3e0a94">processOptions</a> ()</td></tr>
<tr class="separator:acd1ad23a44d817b0d5e20bcf3f3e0a94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf6ef3a8414323f21b20c77d4ea07712"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#acf6ef3a8414323f21b20c77d4ea07712">printUsage</a> (<a class="el" href="class_options.html">Options</a> &amp;options)</td></tr>
<tr class="separator:acf6ef3a8414323f21b20c77d4ea07712"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48c975b6cf62f9f5bee86630e8ce60eb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a48c975b6cf62f9f5bee86630e8ce60eb">run</a> ()</td></tr>
<tr class="memdesc:a48c975b6cf62f9f5bee86630e8ce60eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Core of the tool.  <a href="#a48c975b6cf62f9f5bee86630e8ce60eb">More...</a><br /></td></tr>
<tr class="separator:a48c975b6cf62f9f5bee86630e8ce60eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6af270952a0d6e27822211c86442e94c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6af270952a0d6e27822211c86442e94c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a6af270952a0d6e27822211c86442e94c">checkArguments</a> ()</td></tr>
<tr class="memdesc:a6af270952a0d6e27822211c86442e94c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validate arguments that can be checked. </p><dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an argument value fails to pass validation. </td></tr>
  </table>
  </dd>
</dl>
<br /></td></tr>
<tr class="separator:a6af270952a0d6e27822211c86442e94c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd6155bf520e8e87667b1c2f02be0b8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd6155bf520e8e87667b1c2f02be0b8d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#afd6155bf520e8e87667b1c2f02be0b8d">setVerboseLogging</a> ()</td></tr>
<tr class="memdesc:afd6155bf520e8e87667b1c2f02be0b8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Turns on verbose logging. <br /></td></tr>
<tr class="separator:afd6155bf520e8e87667b1c2f02be0b8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8db92183882a438985d15146eea6c119"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a8db92183882a438985d15146eea6c119">parseIntValue</a> (const char *value)</td></tr>
<tr class="memdesc:a8db92183882a438985d15146eea6c119"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the integer value for a string.  <a href="#a8db92183882a438985d15146eea6c119">More...</a><br /></td></tr>
<tr class="separator:a8db92183882a438985d15146eea6c119"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cb5a08e73fa60f1055b7de623a49b8e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7cb5a08e73fa60f1055b7de623a49b8e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a7cb5a08e73fa60f1055b7de623a49b8e">overrideVariable</a> (const char *optarg)</td></tr>
<tr class="memdesc:a7cb5a08e73fa60f1055b7de623a49b8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses the -D option to override a constant value. <br /></td></tr>
<tr class="separator:a7cb5a08e73fa60f1055b7de623a49b8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a497e352257a2d8d79ae48857e58cfbb3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a497e352257a2d8d79ae48857e58cfbb3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>overrideOption</b> (const char *optarg)</td></tr>
<tr class="separator:a497e352257a2d8d79ae48857e58cfbb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09d8efd779d5d67b434f31de390a75ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09d8efd779d5d67b434f31de390a75ee"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a09d8efd779d5d67b434f31de390a75ee">convert</a> ()</td></tr>
<tr class="memdesc:a09d8efd779d5d67b434f31de390a75ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do the conversion. </p><dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>This exception is thrown if the conversion controller does not produce a boot image, or if the output file cannot be opened. Other errors internal to the conversion controller may also produce this exception. </td></tr>
  </table>
  </dd>
</dl>
<br /></td></tr>
<tr class="separator:a09d8efd779d5d67b434f31de390a75ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2988c9039e6625f2824acd9ed5542f73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2988c9039e6625f2824acd9ed5542f73"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>addCryptoKeys</b> (<a class="el" href="classelftosb_1_1_encore_boot_image.html">elftosb::EncoreBootImage</a> *encoreImage)</td></tr>
<tr class="separator:a2988c9039e6625f2824acd9ed5542f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d8de5e5f7c5c5d8b9a361f0df0eeb11"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a1d8de5e5f7c5c5d8b9a361f0df0eeb11">generateKeyFile</a> (const std::string &amp;path)</td></tr>
<tr class="memdesc:a1d8de5e5f7c5c5d8b9a361f0df0eeb11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens the file at <em>path</em> and writes a random key file.  <a href="#a1d8de5e5f7c5c5d8b9a361f0df0eeb11">More...</a><br /></td></tr>
<tr class="separator:a1d8de5e5f7c5c5d8b9a361f0df0eeb11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fe5683170bcffc31725ac075ea061f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7fe5683170bcffc31725ac075ea061f1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a7fe5683170bcffc31725ac075ea061f1">dumpKey</a> (const <a class="el" href="class_a_e_s_key.html">AESKey</a>&lt; 128 &gt; &amp;key)</td></tr>
<tr class="memdesc:a7fe5683170bcffc31725ac075ea061f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write the value of each byte of the <em>key</em> to the log. <br /></td></tr>
<tr class="separator:a7fe5683170bcffc31725ac075ea061f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a556d08a128499c285ff0688c0e2c7110"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a556d08a128499c285ff0688c0e2c7110">readBootImage</a> ()</td></tr>
<tr class="memdesc:a556d08a128499c285ff0688c0e2c7110"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opens and reads the boot image identified on the command line.  <a href="#a556d08a128499c285ff0688c0e2c7110">More...</a><br /></td></tr>
<tr class="separator:a556d08a128499c285ff0688c0e2c7110"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd943a14c2306022ccc92f4b4b552e30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#afd943a14c2306022ccc92f4b4b552e30">extractSection</a> (<a class="el" href="classelftosb_1_1_encore_boot_image_1_1_section.html">EncoreBootImage::Section</a> *section)</td></tr>
<tr class="memdesc:afd943a14c2306022ccc92f4b4b552e30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dumps the contents of a section to stdout.  <a href="#afd943a14c2306022ccc92f4b4b552e30">More...</a><br /></td></tr>
<tr class="separator:afd943a14c2306022ccc92f4b4b552e30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83087c88d8b10663ab71a938b2f59556"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a83087c88d8b10663ab71a938b2f59556">compareDigests</a> (const sha1_digest_t &amp;a, const sha1_digest_t &amp;b)</td></tr>
<tr class="memdesc:a83087c88d8b10663ab71a938b2f59556"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two SHA-1 digests and returns whether they are equal.  <a href="#a83087c88d8b10663ab71a938b2f59556">More...</a><br /></td></tr>
<tr class="separator:a83087c88d8b10663ab71a938b2f59556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b63cea3780b4b068ccd388db71e4304"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b63cea3780b4b068ccd388db71e4304"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>dumpImageHeader</b> (const <a class="el" href="classelftosb_1_1_encore_boot_image.html#structelftosb_1_1_encore_boot_image_1_1boot__image__header__t">EncoreBootImage::boot_image_header_t</a> &amp;header)</td></tr>
<tr class="separator:a5b63cea3780b4b068ccd388db71e4304"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02c8454f325102e501b88a44cbe7ec4d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a02c8454f325102e501b88a44cbe7ec4d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>dumpSectionHeader</b> (const <a class="el" href="classelftosb_1_1_encore_boot_image.html#structelftosb_1_1_encore_boot_image_1_1section__header__t">EncoreBootImage::section_header_t</a> &amp;header)</td></tr>
<tr class="separator:a02c8454f325102e501b88a44cbe7ec4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ac4ff123a14180cfbcb0a3021e300ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ac4ff123a14180cfbcb0a3021e300ff"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a9ac4ff123a14180cfbcb0a3021e300ff">logHexArray</a> (<a class="el" href="group__logging.html#a5209ca5ee1a2a8181287485e950cf381">Logger::log_level_t</a> level, const uint8_t *bytes, unsigned count)</td></tr>
<tr class="memdesc:a9ac4ff123a14180cfbcb0a3021e300ff"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__logging.html#class_log" title="Wraps a set of static functions for easy global logging access. ">Log</a> an array of bytes as hex. <br /></td></tr>
<tr class="separator:a9ac4ff123a14180cfbcb0a3021e300ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:af572948cf052f41c9c3d0bace6d26432"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432">chip_family_t</a> { <br />
&#160;&#160;<a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a>, 
<br />
&#160;&#160;<a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432ab6f5c61013c3b90b48429b79d2e67264">kMX28Family</a>, 
<br />
&#160;&#160;<a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432a3f47448a501b1739353e4bc886632294">kKinetisFamily</a>
<br />
 }<tr class="memdesc:af572948cf052f41c9c3d0bace6d26432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported chip families.  <a href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:af572948cf052f41c9c3d0bace6d26432"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a2d94f0b33e68730a9de088fe7bdf80a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d94f0b33e68730a9de088fe7bdf80a3"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a2d94f0b33e68730a9de088fe7bdf80a3">m_argc</a></td></tr>
<tr class="memdesc:a2d94f0b33e68730a9de088fe7bdf80a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of command line arguments. <br /></td></tr>
<tr class="separator:a2d94f0b33e68730a9de088fe7bdf80a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24971147652e59384e1983c2b4b1776a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24971147652e59384e1983c2b4b1776a"></a>
char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a24971147652e59384e1983c2b4b1776a">m_argv</a></td></tr>
<tr class="memdesc:a24971147652e59384e1983c2b4b1776a"><td class="mdescLeft">&#160;</td><td class="mdescRight">String value for each command line argument. <br /></td></tr>
<tr class="separator:a24971147652e59384e1983c2b4b1776a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa37d891f5514b90b5a355f41b47d73cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa37d891f5514b90b5a355f41b47d73cd"></a>
<a class="el" href="group__logging.html#class_stdout_logger">StdoutLogger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#aa37d891f5514b90b5a355f41b47d73cd">m_logger</a></td></tr>
<tr class="memdesc:aa37d891f5514b90b5a355f41b47d73cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Singleton logger instance. <br /></td></tr>
<tr class="separator:aa37d891f5514b90b5a355f41b47d73cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a160f52235d1b3ca34877630dcede34e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a160f52235d1b3ca34877630dcede34e0"></a>
string_vector_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a160f52235d1b3ca34877630dcede34e0">m_keyFilePaths</a></td></tr>
<tr class="memdesc:a160f52235d1b3ca34877630dcede34e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Paths to OTP key files. <br /></td></tr>
<tr class="separator:a160f52235d1b3ca34877630dcede34e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a550fa8f6bf0ddcd24396844925621e65"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a550fa8f6bf0ddcd24396844925621e65"></a>
string_vector_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a550fa8f6bf0ddcd24396844925621e65">m_positionalArgs</a></td></tr>
<tr class="memdesc:a550fa8f6bf0ddcd24396844925621e65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arguments coming after explicit options. <br /></td></tr>
<tr class="separator:a550fa8f6bf0ddcd24396844925621e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f56dc72661356aaf37a885b9bd36fcd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f56dc72661356aaf37a885b9bd36fcd"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a4f56dc72661356aaf37a885b9bd36fcd">m_isVerbose</a></td></tr>
<tr class="memdesc:a4f56dc72661356aaf37a885b9bd36fcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the verbose flag was turned on. <br /></td></tr>
<tr class="separator:a4f56dc72661356aaf37a885b9bd36fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56a5b7111d778fb119d96fad19473c10"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a56a5b7111d778fb119d96fad19473c10"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a56a5b7111d778fb119d96fad19473c10">m_useDefaultKey</a></td></tr>
<tr class="memdesc:a56a5b7111d778fb119d96fad19473c10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include a default (zero) crypto key. <br /></td></tr>
<tr class="separator:a56a5b7111d778fb119d96fad19473c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc3a07d12541fe6adf4bf8fce3e1a18f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc3a07d12541fe6adf4bf8fce3e1a18f"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#acc3a07d12541fe6adf4bf8fce3e1a18f">m_commandFilePath</a></td></tr>
<tr class="memdesc:acc3a07d12541fe6adf4bf8fce3e1a18f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Path to the elftosb command file. <br /></td></tr>
<tr class="separator:acc3a07d12541fe6adf4bf8fce3e1a18f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c0c7ad1e8f88b372948cfd77da9b187"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6c0c7ad1e8f88b372948cfd77da9b187"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a6c0c7ad1e8f88b372948cfd77da9b187">m_outputFilePath</a></td></tr>
<tr class="memdesc:a6c0c7ad1e8f88b372948cfd77da9b187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Path to the output .sb file. <br /></td></tr>
<tr class="separator:a6c0c7ad1e8f88b372948cfd77da9b187"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3255dd5052ad00077644e368cec813a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3255dd5052ad00077644e368cec813a"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#ac3255dd5052ad00077644e368cec813a">m_searchPath</a></td></tr>
<tr class="memdesc:ac3255dd5052ad00077644e368cec813a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional search path for input files. <br /></td></tr>
<tr class="separator:ac3255dd5052ad00077644e368cec813a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8145b92a68837aca29aad91f88514572"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8145b92a68837aca29aad91f88514572"></a>
<a class="el" href="structelftosb_1_1version__t.html">elftosb::version_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a8145b92a68837aca29aad91f88514572">m_productVersion</a></td></tr>
<tr class="memdesc:a8145b92a68837aca29aad91f88514572"><td class="mdescLeft">&#160;</td><td class="mdescRight">Product version specified on command line. <br /></td></tr>
<tr class="separator:a8145b92a68837aca29aad91f88514572"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2867555ae0a2a6b28a2179ce4956f5c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af2867555ae0a2a6b28a2179ce4956f5c"></a>
<a class="el" href="structelftosb_1_1version__t.html">elftosb::version_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#af2867555ae0a2a6b28a2179ce4956f5c">m_componentVersion</a></td></tr>
<tr class="memdesc:af2867555ae0a2a6b28a2179ce4956f5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Component version specified on command line. <br /></td></tr>
<tr class="separator:af2867555ae0a2a6b28a2179ce4956f5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc666e3f6a8beaff5761f415547fb728"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acc666e3f6a8beaff5761f415547fb728"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#acc666e3f6a8beaff5761f415547fb728">m_productVersionSpecified</a></td></tr>
<tr class="memdesc:acc666e3f6a8beaff5761f415547fb728"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the product version was specified on the command line. <br /></td></tr>
<tr class="separator:acc666e3f6a8beaff5761f415547fb728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef69fba6b01d040a6acf0f5be4d9ba32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aef69fba6b01d040a6acf0f5be4d9ba32"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#aef69fba6b01d040a6acf0f5be4d9ba32">m_componentVersionSpecified</a></td></tr>
<tr class="memdesc:aef69fba6b01d040a6acf0f5be4d9ba32"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if the component version was specified on the command line. <br /></td></tr>
<tr class="separator:aef69fba6b01d040a6acf0f5be4d9ba32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9befd7b92af93ead3b715b0aa6f5a26e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9befd7b92af93ead3b715b0aa6f5a26e"></a>
<a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432">chip_family_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a9befd7b92af93ead3b715b0aa6f5a26e">m_family</a></td></tr>
<tr class="memdesc:a9befd7b92af93ead3b715b0aa6f5a26e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Chip family that the output file is formatted for. <br /></td></tr>
<tr class="separator:a9befd7b92af93ead3b715b0aa6f5a26e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c64571b97f968bb394519d443aca658"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c64571b97f968bb394519d443aca658"></a>
<a class="el" href="classelftosb_1_1_conversion_controller.html">elftosb::ConversionController</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a4c64571b97f968bb394519d443aca658">m_controller</a></td></tr>
<tr class="memdesc:a4c64571b97f968bb394519d443aca658"><td class="mdescLeft">&#160;</td><td class="mdescRight">Our conversion controller instance. <br /></td></tr>
<tr class="separator:a4c64571b97f968bb394519d443aca658"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a600a4811d6243470f2c09066ea31ae27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a600a4811d6243470f2c09066ea31ae27"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a600a4811d6243470f2c09066ea31ae27">m_doElftoSB</a></td></tr>
<tr class="memdesc:a600a4811d6243470f2c09066ea31ae27"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if generating SB file. <br /></td></tr>
<tr class="separator:a600a4811d6243470f2c09066ea31ae27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f9257d5fde1c6f79baf3645f689d3a1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1f9257d5fde1c6f79baf3645f689d3a1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a1f9257d5fde1c6f79baf3645f689d3a1">m_doKeygen</a></td></tr>
<tr class="memdesc:a1f9257d5fde1c6f79baf3645f689d3a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether to generate the key file. <br /></td></tr>
<tr class="separator:a1f9257d5fde1c6f79baf3645f689d3a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d880f8101f9d5726af38450b04570d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d880f8101f9d5726af38450b04570d6"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a3d880f8101f9d5726af38450b04570d6">m_keyCount</a></td></tr>
<tr class="memdesc:a3d880f8101f9d5726af38450b04570d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of keys to generate. <br /></td></tr>
<tr class="separator:a3d880f8101f9d5726af38450b04570d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a043629adbc04892712091132e31cffe7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a043629adbc04892712091132e31cffe7"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a043629adbc04892712091132e31cffe7">m_doExtract</a></td></tr>
<tr class="memdesc:a043629adbc04892712091132e31cffe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if extract mode is on. <br /></td></tr>
<tr class="separator:a043629adbc04892712091132e31cffe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a273e5ac1436801b234349e519407b33f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a273e5ac1436801b234349e519407b33f"></a>
int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a273e5ac1436801b234349e519407b33f">m_sectionIndex</a></td></tr>
<tr class="memdesc:a273e5ac1436801b234349e519407b33f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Index of section to extract. <br /></td></tr>
<tr class="separator:a273e5ac1436801b234349e519407b33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaed4a1f6862b51267ea4b434a6ce7789"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaed4a1f6862b51267ea4b434a6ce7789"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#aaed4a1f6862b51267ea4b434a6ce7789">m_extractBinary</a></td></tr>
<tr class="memdesc:aaed4a1f6862b51267ea4b434a6ce7789"><td class="mdescLeft">&#160;</td><td class="mdescRight">True if extraction output is binary, false for hex. <br /></td></tr>
<tr class="separator:aaed4a1f6862b51267ea4b434a6ce7789"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab535c6a8071f710ee8d129c57ca5a8ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab535c6a8071f710ee8d129c57ca5a8ac"></a>
<a class="el" href="group__smart__pointer.html#classsmart__ptr">smart_ptr</a>&lt; <a class="el" href="classelftosb_1_1_encore_boot_image_reader.html">EncoreBootImageReader</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#ab535c6a8071f710ee8d129c57ca5a8ac">m_reader</a></td></tr>
<tr class="memdesc:ab535c6a8071f710ee8d129c57ca5a8ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boot image reader object. <br /></td></tr>
<tr class="separator:ab535c6a8071f710ee8d129c57ca5a8ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:a40bb8a1f40ef7e47d4a5b43c37555773"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="classelftosb_tool.html#structelftosb_tool_1_1_family_name_table_entry">FamilyNameTableEntry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classelftosb_tool.html#a40bb8a1f40ef7e47d4a5b43c37555773">kFamilyNameTable</a> []</td></tr>
<tr class="memdesc:a40bb8a1f40ef7e47d4a5b43c37555773"><td class="mdescLeft">&#160;</td><td class="mdescRight">Table that maps from family name strings to chip family constants.  <a href="#a40bb8a1f40ef7e47d4a5b43c37555773">More...</a><br /></td></tr>
<tr class="separator:a40bb8a1f40ef7e47d4a5b43c37555773"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class that encapsulates the elftosb tool. </p>
<p>A single global logger instance is created during object construction. It is never freed because we need it up to the last possible minute, when an exception could be thrown. </p>
</div><hr/><h2 class="groupheader">Class Documentation</h2>
<a name="structelftosb_tool_1_1_family_name_table_entry" id="structelftosb_tool_1_1_family_name_table_entry"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct elftosbTool::FamilyNameTableEntry</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>A structure describing an entry in the table of chip family names. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Class Members</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a3491f55b3d1af275be94fe619d8a143e"></a><a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432">chip_family_t</a></td>
<td class="fieldname">
family</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a7918e57b6161f4edf088da4c52e0beb4"></a>const char *const</td>
<td class="fieldname">
name</td>
<td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="af572948cf052f41c9c3d0bace6d26432"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432">elftosbTool::chip_family_t</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Supported chip families. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b"></a>k37xxFamily&#160;</td><td class="fielddoc">
<p>37xx series. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="af572948cf052f41c9c3d0bace6d26432ab6f5c61013c3b90b48429b79d2e67264"></a>kMX28Family&#160;</td><td class="fielddoc">
<p>Catskills series. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="af572948cf052f41c9c3d0bace6d26432a3f47448a501b1739353e4bc886632294"></a>kKinetisFamily&#160;</td><td class="fielddoc">
<p>Kinetis devices. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="abbd57528cb70d4ed7225993c04412b7e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">elftosbTool::elftosbTool </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>argv</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructor.</p>
<p>Creates the singleton logger instance. </p>

</div>
</div>
<a class="anchor" id="a1c516c8d1cb63dcbc5237ed8d74bac1a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">elftosbTool::~elftosbTool </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a83087c88d8b10663ab71a938b2f59556"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool elftosbTool::compareDigests </td>
          <td>(</td>
          <td class="paramtype">const sha1_digest_t &amp;&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const sha1_digest_t &amp;&#160;</td>
          <td class="paramname"><em>b</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compares two SHA-1 digests and returns whether they are equal. </p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>The two digests are equal. </td></tr>
    <tr><td class="paramname">false</td><td>The <em>a</em> and <em>b</em> digests are different from each other. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afd943a14c2306022ccc92f4b4b552e30"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void elftosbTool::extractSection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classelftosb_1_1_encore_boot_image_1_1_section.html">EncoreBootImage::Section</a> *&#160;</td>
          <td class="paramname"><em>section</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Dumps the contents of a section to stdout. </p>
<p>If <a class="el" href="classelftosb_tool.html#aaed4a1f6862b51267ea4b434a6ce7789" title="True if extraction output is binary, false for hex. ">m_extractBinary</a> is true then the contents are written as raw binary to stdout. Otherwise the data is formatted using <a class="el" href="classelftosb_tool.html#a9ac4ff123a14180cfbcb0a3021e300ff" title="Log an array of bytes as hex. ">logHexArray()</a>. </p>

</div>
</div>
<a class="anchor" id="a1d8de5e5f7c5c5d8b9a361f0df0eeb11"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void elftosbTool::generateKeyFile </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Opens the file at <em>path</em> and writes a random key file. </p>
<p>Each key file will have <a class="el" href="classelftosb_tool.html#a3d880f8101f9d5726af38450b04570d6" title="Number of keys to generate. ">m_keyCount</a> number of keys written into it, each on a line by itself. </p>

</div>
</div>
<a class="anchor" id="ac556d139f83167784017bbf8d7eee730"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool elftosbTool::lookupFamilyName </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432">chip_family_t</a> *&#160;</td>
          <td class="paramname"><em>family</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Searches the family name table. </p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>The <em>name</em> was found in the table, and <em>family</em> is valid. </td></tr>
    <tr><td class="paramname">false</td><td>No matching family name was found. The <em>family</em> argument is not modified. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8db92183882a438985d15146eea6c119"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t elftosbTool::parseIntValue </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the integer value for a string. </p>
<p>Metric multiplier prefixes are supported. </p>

</div>
</div>
<a class="anchor" id="acf6ef3a8414323f21b20c77d4ea07712"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void elftosbTool::printUsage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_options.html">Options</a> &amp;&#160;</td>
          <td class="paramname"><em>options</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Prints help for the tool. </p>

</div>
</div>
<a class="anchor" id="acd1ad23a44d817b0d5e20bcf3f3e0a94"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int elftosbTool::processOptions </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Reads the command line options passed into the constructor.</p>
<p>This method can return a return code to its caller, which will cause the tool to exit immediately with that return code value. Normally, though, it will return -1 to signal that the tool should continue to execute and all options were processed successfully.</p>
<p>The <a class="el" href="class_options.html" title="parse command-line options ">Options</a> class is used to parse command line options. See #k_optionsDefinition for the list of options and #k_usageText for the descriptive help for each option.</p>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">-1</td><td>The options were processed successfully. Let the tool run normally. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A zero or positive result is a return code value that should be returned from the tool as it exits immediately. </dd></dl>

</div>
</div>
<a class="anchor" id="a556d08a128499c285ff0688c0e2c7110"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void elftosbTool::readBootImage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Opens and reads the boot image identified on the command line. </p>
<dl class="section pre"><dt>Precondition</dt><dd>At least one position argument must be present. </dd></dl>

</div>
</div>
<a class="anchor" id="a48c975b6cf62f9f5bee86630e8ce60eb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int elftosbTool::run </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Core of the tool. </p>
<p>Calls <a class="el" href="classelftosb_tool.html#acd1ad23a44d817b0d5e20bcf3f3e0a94">processOptions()</a> to handle command line options before performing the real work the tool does. </p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a40bb8a1f40ef7e47d4a5b43c37555773"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classelftosb_tool.html#structelftosb_tool_1_1_family_name_table_entry">elftosbTool::FamilyNameTableEntry</a> elftosbTool::kFamilyNameTable</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= { { <span class="stringliteral">&quot;37xx&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;377x&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;378x&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;mx23&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;imx23&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;i.mx23&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;mx28&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432ab6f5c61013c3b90b48429b79d2e67264">kMX28Family</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;imx28&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432ab6f5c61013c3b90b48429b79d2e67264">kMX28Family</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;i.mx28&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432ab6f5c61013c3b90b48429b79d2e67264">kMX28Family</a> },</div><div class="line">                                                                            { <span class="stringliteral">&quot;kinetis&quot;</span>, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432a3f47448a501b1739353e4bc886632294">kKinetisFamily</a> },</div><div class="line"></div><div class="line">                                                                            </div><div class="line">                                                                            { NULL, <a class="code" href="classelftosb_tool.html#af572948cf052f41c9c3d0bace6d26432aafc99f0e3597074c3efb38545e6de75b">k37xxFamily</a> } }</div></div><!-- fragment -->
<p>Table that maps from family name strings to chip family constants. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>elftosb.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classelftosb_tool.html">elftosbTool</a></li>
    <li class="footer">Generated on Mon Mar 7 2016 16:49:51 for Kinetis Bootloader Host by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
